package bluenext;

/**
 * Représente une exception générée par la librairie BlueNeXT.
 * Contient un code explicitant le type d'exception qui s'est produite.
 *
 * @author Arnaud Hittos
 * @version 1.0
 */
public class ErreurNXTException extends Exception {

    /** Un nom de robot inconnu a été utilisé */
    public final static int ERREUR_REF_ROBOT = 1;
    /** L'adresse du robot est incorrecte */
    public final static int ADRESSE_INCORRECTE = 2;
    /** La recherche des robots a échoué */
    public final static int ERREUR_SEARCH = 4;
    /** La connexino au robot a échoué */
    public final static int ERREUR_CONNEXION = 5;
    /** Tentative de communication avec un robot non connecté */
    public final static int ROBOT_PAS_CONNECTE = 6;
    /** Tentive de connexion a un robot déjà connecté */
    public final static int ROBOT_DEJA_CONNECTE = 7;
    /** Une erreur s'est produite à la création de l'objet <code>NXT</code> */
    public final static int ERREUR_CREATION_OBJET_NXT = 10;

    /** Un message décrivant l'exception */
    private String msg;
    /** Le code représentant le type de l'exception */
    private int code;

    /**
     * Constructeur à partir d'un message et d'un code.
     * @param mesg le message décrivant l'exception
     * @param code le code représentant le type de l'exception
     */
    public ErreurNXTException(String mesg, int code) {
        msg = mesg;
        this.code = code;
    }

    /**
     * Transforme l'exception en une chaine de caractères contenant son code
     * suivi du message.
     * @return la chaine de caractères représetant l'exception
     */
    @Override
    public String toString() {
        return code + " : " + msg;
    }


    /**
     * Retourne le code de l'exception.
     * @return l'entier représentant le code de l'exception
     */
    public int getCode() {
        return code;
    }
}
